// pages/statistics/complaint/index.js
import {
  host
} from '../../../utils/status.js'
import {
  addComplaint,
  getLogistics,
  getrichText,
  getTranOrder
} from '../../../utils/api/index.js'
import Toast from '../../../vant/toast/toast';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    orderId: '',
    content: '',
    phoneNumber: '',
    imagesUrl: [],
    mixImageLength: 6,
    isShowPopup: false,
    visible: false,
    saleVisible: false,
    allQuickData: [
      [{
        visible: false,
        value: '派送延时'
      }, {
        visible: false,
        value: '外箱破损'
      }, {
        visible: false,
        value: '丢件'
      }],
      // [{
      //   visible: false,
      //   value: '派送延时'
      // }, {
      //   visible: false,
      //   value: '外箱破损'
      // }, {
      //   visible: false,
      //   value: '丢件'
      // }]
    ],
    // quickData: [{
    //   visible: false,
    //   value: '派送延时'
    // }, {
    //   visible: false,
    //   value: '外箱破损'
    // }, {
    //   visible: false,
    //   value: '丢件'
    // }],
    allData: [{
      content: "",
      trackingNo: "",
      imagesUrl: []
    }],
    idArray: [],
    richText: '',
    orderNo: '',
    nowEIndex: undefined,
    nowIndex: undefined,
    trackingNos: [],
    userPhoneNumber: '',
    tranVisible: false,
    pickerValue: "",
    pickerIndex: undefined,
    textVisible: true,
    textPlaceholder: "",
    topHeight:0,
    submitDisabled:false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (query) {
    //获取系统信息
    let that = this
    wx.getSystemInfo({
      success: function (res) {
        // 获取可使用窗口宽度
        let clientWidth = res.windowWidth;
        //获取状态栏与导航栏高度的和
        let heightSum = getApp().globalData.statusHeight + 44
        let ratio = 750 / clientWidth;
        let topHeight = heightSum * ratio;
        console.log(heightSum)
        console.log(getApp().globalData)
        that.setData({
          topHeight
        })
      }
    })
    this.setData({
      orderId: query.orderId,
      orderNo: query.orderNo
    })
    this.getTranData()
    this.getrichText()
  },
  getrichText() {
    getrichText({
      orderId: this.data.orderId,
      orderNo: this.data.orderNo
    }).then((res) => {
      if (res.resultStatus) {
        console.log(res, 'nkjlnkj')
        if (res.resultData) {
          this.setData({
            saleVisible: true,
            richText: JSON.parse(res.resultData)
          })
        }
      } else {
        wx.showToast({
          icon: 'none',
          title: res.errorMessage
        })
      }
    })
  },
  chooseImage(e) {
    this.setData({
      visible: false
    })
    wx.chooseImage({
      count: this.data.mixImageLength - this.data.imagesUrl.length,
      // sizeType: ['compressed'],
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: ({
        tempFilePaths,
        tempFiles
      }) => {
        // console.log(tempFiles,'tempFiles');
        // return
        // tempFiles.forEach((img, index) => {
        //   if(img.size > Number(1048576 * 3)){
        //     wx.showToast({
        //       title: '上传文件大小不能超过3M',
        //     })
        //   }else{
        //     wx.showLoading({
        //       title: '上传中',
        //     })
        //     wx.uploadFile({
        //       url: host + 'v1/common/upload',
        //       filePath: img.path,
        //       name: 'file',
        //       success: (r) => {
        //         const res = JSON.parse(r.data)
        //         if (res.resultStatus) {
        //           let imgVisible = false
        //           let imagesUrl = this.data.allData[this.data.nowIndex].imagesUrl
        //           this.data.allData.forEach(item => {
        //             item.imagesUrl.forEach(sItem => {
        //               if (sItem.md5 != res.resultData.md5) {
        //                 // imgVisible = false
        //               } else {
        //                 imgVisible = true
        //                 return
        //               }
        //             })
        //           })
        //           if (imgVisible) {
        //             wx.showToast({
        //               title: '已上传相同图片',
        //               icon: 'none'
        //             })
        //           } else {
        //             imagesUrl.push({
        //               type: "image",
        //               url: res.resultData.fileLink,
        //               md5: res.resultData.md5
        //             })
        //           }
        //           let data = this.data.allData
        //           data[this.data.nowIndex].imagesUrl = imagesUrl
        //           // this.setData({
        //           //   imagesUrl
        //           // })
        //           this.setData({
        //             allData: data
        //           })
        //           wx.hideLoading()
        //         } else {
        //           // wx.hideLoading()
        //           Toast('上传图片失败，请重新上传')
        //         }
        //       },
        //       fail: () => {
        //         Toast('上传图片失败，请重新上传')
        //         // wx.hideLoading()
        //       }
        //     })
        //   }

        // })
        tempFilePaths.forEach((img, index) => {
          wx.showLoading({
            title: '上传中',
          })
          wx.uploadFile({
            url: host + 'v1/common/upload',
            filePath: img,
            name: 'file',
            success: (r) => {
              const res = JSON.parse(r.data)
              if (res.resultStatus) {
                let imgVisible = false
                let imagesUrl = this.data.allData[this.data.nowIndex].imagesUrl
                this.data.allData.forEach(item => {
                  item.imagesUrl.forEach(sItem => {
                    if (sItem.md5 != res.resultData.md5) {
                      // imgVisible = false
                    } else {
                      imgVisible = true
                      return
                    }
                  })
                })
                if (imgVisible) {
                  wx.showToast({
                    title: '已上传相同图片',
                    icon: 'none'
                  })
                } else {
                  imagesUrl.push({
                    type: "image",
                    url: res.resultData.fileLink,
                    md5: res.resultData.md5
                  })
                }
                let data = this.data.allData
                data[this.data.nowIndex].imagesUrl = imagesUrl
                // this.setData({
                //   imagesUrl
                // })
                this.setData({
                  allData: data
                })
                wx.hideLoading()
              } else {
                // wx.hideLoading()
                Toast('上传图片失败，请重新上传')
              }
            },
            fail: () => {
              Toast('上传图片失败，请重新上传')
              // wx.hideLoading()
            }
          })
        })
      }
    })
  },

  deleteImage(e) {
    let eIndex = e.currentTarget.dataset.eindex
    let index = e.currentTarget.dataset.index
    let data = this.data.allData
    let imgUrls = data[index].imagesUrl
    imgUrls.splice(eIndex, 1)
    data[index].imagesUrl = imgUrls
    // const index = e.target.dataset.index
    // let imagesUrl = this.data.imagesUrl
    // imagesUrl.splice(index, 1)
    this.setData({
      allData: data
    })
  },

  previewImage(e) {
    let index = e.currentTarget.dataset.index
    let eIndex = e.currentTarget.dataset.eIndex
    var that = this
    wx.previewMedia({
      sources: that.data.allData[index].imagesUrl,
      current: eIndex
    })
  },

  inputeidt(e) {
    let index = e.currentTarget.dataset.index
    // let data = this.data.quickData
    let data = this.data.allQuickData
    let nowQuickData = data[index]
    if ((e.detail.value + '').indexOf('派送延时') < 0) {
      nowQuickData[0].visible = false
      data[index] = nowQuickData
      // this.setData({
      //   quickData: data
      // })
      this.setData({
        allQuickData: data
      })
    } else {
      nowQuickData[1].visible = true
      data[index] = nowQuickData
      // data[0].visible = true
      this.setData({
        nowQuickData: data
      })
    }

    if ((e.detail.value + '').indexOf('外箱破损') < 0) {
      nowQuickData[1].visible = false
      data[index] = nowQuickData
      this.setData({
        allQuickData: data
      })
      // data[1].visible = false
      // this.setData({
      //   quickData: data
      // })
    } else {
      nowQuickData[1].visible = true
      data[index] = nowQuickData
      this.setData({
        allQuickData: data
      })
      // data[1].visible = true
      // this.setData({
      //   quickData: data
      // })
    }
    if ((e.detail.value + '').indexOf('丢件') < 0) {
      nowQuickData[2].visible = false
      data[index] = nowQuickData
      this.setData({
        allQuickData: data
      })
      // data[2].visible = false
      // this.setData({
      //   quickData: data
      // })
    } else {
      nowQuickData[2].visible = true
      data[index] = nowQuickData
      this.setData({
        allQuickData: data
      })
      // data[2].visible = true
      // this.setData({
      //   quickData: data
      // })
    }
    let newData = this.data.allData
    newData[index].content = e.detail.value
    // this.setData({
    //   content: e.detail.value
    // })
    this.setData({
      allData: newData
    })
  },

  inputPhone(e) {
    this.setData({
      phoneNumber: e.detail.value
    })
  },

  submitData() {
    // let visible = this.data.isShowPopup
    // visible = !visible
    // this.setData({
    //   isShowPopup: visible
    // })
    // return
    let tranVisible = false
    let contentVisible = false
    let imgVisible = false
    let phoneVisible = false
    // if(this.data.allData.length <= 0){

    // }
    if (!this.data.phoneNumber.trim()) {
      phoneVisible = true
      wx.showToast({
        icon: 'none',
        title: '请输入联系电话'
      })
    }
    if (this.data.phoneNumber.trim().length !== 11) {
      wx.showToast({
        icon: 'none',
        title: '手机号码为11位'
      })
      phoneVisible = true
    }

    this.data.allData.forEach(ele => {
      if (!ele.content.trim()) {
        contentVisible = true
      }
      if (ele.imagesUrl.length < 3) {
        imgVisible = true
      }
      if (!ele.trackingNo.trim()) {
        tranVisible = true
      }
    })
    if (contentVisible) {
      wx.showToast({
        icon: 'none',
        title: '请输入投诉内容'
      })
    }
    if (imgVisible) {
      wx.showToast({
        icon: 'none',
        title: '请上传3张以上照片'
      })
    }
    if (tranVisible) {
      wx.showToast({
        icon: 'none',
        title: '请选择运单编号'
      })
    }

    if ((!contentVisible && !imgVisible) && (!phoneVisible && !tranVisible)) {
      if (this.data.allData.length <= 0) {
        wx.showToast({
          title: '提交内容不能为空',
          icon: 'none'
        })
      } else {
        let content = this.data.allData.map(ele => {
          let param = {}
          param.content = ele.content
          param.trackingNo = ele.trackingNo
          param.imagesUrl = ele.imagesUrl.map(item => {
            let sParam = {}
            sParam.type = item.type
            sParam.url = item.url
            return sParam
          })
          return param
        })
        // console.log(content,'content');
        this.setData({
          submitDisabled:true
        })
        
        addComplaint({
          orderId: this.data.orderId,
          phoneNumber: this.data.phoneNumber,
          // imagesUrl: this.data.imagesUrl.join(';'),
          // imagesUrl: JSON.stringify(this.data.imagesUrl),
          content: JSON.stringify(content)
        }).then((res) => {
              if (res.resultStatus) {
            this.setData({
              isShowPopup: true,
            })
            // wx.setStorageSync('nowOrderstatus', true)
          } else {
            wx.showToast({
              icon: 'none',
              title: res.errorMessage
            })
            this.setData({
              submitDisabled:false
            })
          }
        })
      }

    }

    // if (!this.data.content.trim()) {
    //   wx.showToast({
    //     icon: 'none',
    //     title: '请输入投诉内容'
    //   })
    // } else if (this.data.imagesUrl.length < 3) {
    //   wx.showToast({
    //     icon: 'none',
    //     title: '请上传3张以上照片'
    //   })
    // } else if (!this.data.phoneNumber.trim()) {
    //   wx.showToast({
    //     icon: 'none',
    //     title: '请输入联系电话'
    //   })
    // } else if (this.data.phoneNumber.trim().length !== 11) {
    //   wx.showToast({
    //     icon: 'none',
    //     title: '手机号码为11位'
    //   })
    // } else {
    //   // return
    //   addComplaint({
    //     orderId: this.data.orderId,
    //     phoneNumber: this.data.phoneNumber,
    //     // imagesUrl: this.data.imagesUrl.join(';'),
    //     imagesUrl: JSON.stringify(this.data.imagesUrl),
    //     content: this.data.content
    //   }).then((res) => {
    //     if (res.resultStatus) {
    //       this.setData({
    //         isShowPopup: true
    //       })
    //     } else {
    //       wx.showToast({
    //         icon: 'none',
    //         title: res.errorMessage
    //       })
    //     }
    //   })
    // }
  },

  onClose() {
    this.setData({
      isShowPopup: false,
      submitDisabled:false
    })
    wx.navigateBack({
      delta: 1
    })
    // wx.navigateTo({
    //   url: '/pages/statistics/index/index',
    // })
    // wx.switchTab({
    //   url: '/pages/statistics/index/index',
    // })
  },

  chooseFile(e) {
    let index = e.currentTarget.dataset.index
    this.setData({
      visible: true,
      nowIndex: index
    })
  },

  cancelFile() {
    this.setData({
      visible: false
    })
  },

  chooseVideo(e) {
    this.setData({
      visible: false
    })
    wx.chooseVideo({
      sourceType: ['album', 'camera'],
      compressed: false,
      success: (res) => {
        wx.showLoading({
          title: '上传中',
        })
        wx.uploadFile({
          url: host + 'v1/common/upload',
          filePath: res.tempFilePath,
          name: 'file',
          success: (r) => {
            const res = JSON.parse(r.data)
            if (res.resultStatus) {
              // const imagesUrl = this.data.imagesUrl
              let imgVisible = false
              let imagesUrl = this.data.allData[this.data.nowIndex].imagesUrl
              this.data.allData.forEach(item => {
                item.imagesUrl.forEach(sItem => {
                  if (sItem.md5 != res.resultData.md5) {
                    // imgVisible = false
                  } else {
                    imgVisible = true
                    return
                  }
                })
              })
              if (imgVisible) {
                wx.showToast({
                  title: '已上传相同视频',
                  icon: 'none'
                })
              } else {
                imagesUrl.push({
                  type: "video",
                  url: res.resultData.fileLink,
                  md5: res.resultData.md5
                })
              }
              let data = this.data.allData
              data[this.data.nowIndex].imagesUrl = imagesUrl
              // this.setData({
              //   imagesUrl
              // })
              this.setData({
                allData: data
              })
              // imagesUrl.push({
              //   type: "video",
              //   url: res.resultData.fileLink
              // })
              // this.setData({
              //   imagesUrl
              // })
              wx.hideLoading()
            } else {
              // Toast('上传视频失败，请重新上传')
              wx.hideLoading()
            }
          },
          fail: () => {
            // Toast('上传视频失败，请重新上传')
            wx.hideLoading()
          }
        })
      }
    })
  },
  saleChange() {
    if (this.richText == '') {

    } else {
      this.setData({
        saleVisible: true
      })
    }

  },
  saleCancel() {
    this.setData({
      saleVisible: false,

    })
    setTimeout(() => {
      this.setData({
        textVisible: false
      })
    }, 1000)
  },
  quickChange(e) {
    let eIndex = e.currentTarget.dataset.eindex
    this.setData({
      nowEIndex: eIndex
    })
    let index = e.currentTarget.dataset.index
    let quickData = this.data.allQuickData[index]
    let allQuickData = this.data.allQuickData
    quickData[eIndex].visible = !quickData[eIndex].visible
    allQuickData[index] = quickData

    this.setData({
      allQuickData: allQuickData
    })
    // let data = this.data.quickData
    // data[eIndex].visible = !data[eIndex].visible
    // this.setData({
    //   quickData: data
    // })

    if (this.data.allData[index].content) {
      let newQuickData = this.data.allQuickData[index]
      let newIndex = this.data.allData[index].content.indexOf(newQuickData[eIndex].value)
      if (newIndex > -1 && !newQuickData[eIndex].visible) {
        let data = this.data.allData
        data[index].content = data[index].content.substr(0, newIndex) + data[index].content.slice(newIndex + newQuickData[eIndex].value.length + 1)
        // this.setData({
        //   content: this.data.content.substr(0, newIndex) + this.data.content.slice(newIndex + this.data.quickData[index].value.length + 1)
        // })
        this.setData({
          allData: data
        })
      } else {
        // let content = this.data.content
        let content = this.data.allData[index].content
        let newQuickData = this.data.allQuickData[index]
        if (content.length && content.slice(content.length - 1, content.length) == ';') {
          let addData = this.data.allData
          let data = this.data.allData[index]
          data.content = data.content + newQuickData[eIndex].value
          addData[index] = data
          // this.setData({
          //   content: this.data.content + this.data.quickData[index].value
          // })
          this.setData({
            allData: addData
          })
        } else {
          let data = this.data.allData
          data[index].content = data[index].content + ';' + newQuickData[eIndex].value
          // this.setData({
          //   content: this.data.content + ';' + this.data.quickData[index].value
          // })
          this.setData({
            allData: data
          })
        }
      }
      // if (newIndex > -1 && !this.data.quickData[eIndex].visible) {
      //   let data = this.data.allData
      //   data[index].content = data[index].content.substr(0, newIndex) + data[index].content.slice(newIndex + this.data.quickData[index].value.length + 1)
      //   // this.setData({
      //   //   content: this.data.content.substr(0, newIndex) + this.data.content.slice(newIndex + this.data.quickData[index].value.length + 1)
      //   // })
      //   this.setData({
      //     allData: data
      //   })
      // } else {
      //   // let content = this.data.content
      //   let content = this.data.allData[index].content
      //   console.log(content, 'content-----');
      //   console.log(content.length, 'content.length-----');
      //   console.log(content.slice(content.length));
      //   if (content.length && content.slice(content.length - 1, content.length) == ';') {
      //     console.log(111);
      //     let data = this.data.allData[index].content
      //     data[index].content = data[index].content + this.data.quickData[index].value
      //     // this.setData({
      //     //   content: this.data.content + this.data.quickData[index].value
      //     // })
      //     this.setData({
      //       allData: data
      //     })
      //   } else {
      //     let data = this.data.allData
      //     data[index].content = data[index].content + ';' + this.data.quickData[index].value
      //     // this.setData({
      //     //   content: this.data.content + ';' + this.data.quickData[index].value
      //     // })
      //     this.setData({
      //       allData: data
      //     })
      //   }

      // }

    } else {
      let data = this.data.allData
      let newQuickData = this.data.allQuickData[index]
      data[index].content = newQuickData[eIndex].value
      // data[index].content = this.data.quickData[index].value
      // this.setData({
      //   content: this.data.quickData[index].value
      // })
      this.setData({
        allData: data
      })
    }

  },
  chooseOrder(e) {
    if (this.data.allData.length > 1) {
      let idArray = this.data.idArray
      this.data.allData.forEach(ele => {
        let index = idArray.indexOf(ele.trackingNo)
        if (index > -1) {
          idArray.splice(index, 1)
        }
      })
      this.setData({
        idArray: idArray,
        pickerValue: idArray[0]
      })

    }
    this.setData({
      nowIndex: e.currentTarget.dataset.index,
      tranVisible: true,
      textPlaceholder: '',
      textVisible: true
    })

  },
  addData() {
    if (this.data.allData.length + 1 > this.data.idArray.length) {
      wx.showToast({
        title: '运单已全部添加',
        icon: 'none'
      })
    } else {
      let data = this.data.allData
      data.push({
        content: "",
        trackingNo: "",
        imagesUrl: []
      })
      let quickData = this.data.allQuickData
      quickData.push([{
        visible: false,
        value: '派送延时'
      }, {
        visible: false,
        value: '外箱破损'
      }, {
        visible: false,
        value: '丢件'
      }])
      this.setData({
        allData: data,
        allQuickData: quickData
      })
    }


  },
  deleteData(e) {
    let index = e.currentTarget.dataset.index
    let idArray = this.data.idArray
    let data = this.data.allData
    idArray.push(data[index].trackingNo)
    let allQuickData = this.data.allQuickData
    allQuickData.splice(index, 1)
    data.splice(index, 1)
    this.setData({
      allData: data,
      allQuickData: allQuickData,
      idArray: idArray
    })
    console.log(idArray)

  },
  getTranData() {
    getTranOrder(this.data.orderId).then(res => {
      if (res.resultStatus) {
        this.setData({
          idArray: res.resultData.trackingNos,
          userPhoneNumber: res.resultData.userPhoneNumber,
          phoneNumber: res.resultData.userPhoneNumber,
          trackingNos: res.resultData.trackingNos,
          pickerValue: res.resultData.trackingNos[0]
        })
        let data = this.data.allData
        data[0].trackingNo = this.data.pickerValue
        this.setData({
          allData: data,
        })
      }
    })
  },
  trackingNoChange(e) {
    console.log(e.detail, 'e.detail');

    this.setData({
      pickerValue: e.detail.value,
      pickerIndex: e.detail.index
    })
  },
  cancle() {
    this.setData({
      tranVisible: false,
    })
    setTimeout(() => {
      this.setData({
        textVisible: false
      })
    }, 1000)

  },
  confirm() {
    let idArray = this.data.idArray
    let data = this.data.allData
    data[this.data.nowIndex].trackingNo = this.data.pickerValue
    this.setData({
      allData: data,
      idArray: idArray,
      tranVisible: false,
      textPlaceholder: '请描述具体情况，有助于投诉快速处理',
      // textVisible: false
    })
    setTimeout(() => {
      this.setData({
        textVisible: false
      })
    }, 1000)

  }
})